home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / Oberon⁄F™ 1.1 / Manuals / Quick (.txt) < prev    next >
Encoding:
Oberon Document  |  1995-08-13  |  9.2 KB  |  96 lines  |  [oODC/obnF]

  1. Documents.StdDocumentDesc
  2. Documents.DocumentDesc
  3. Containers.ViewDesc
  4. Views.ViewDesc
  5. Stores.StoreDesc
  6. Documents.ModelDesc
  7. Containers.ModelDesc
  8. Models.ModelDesc
  9. Stores.ElemDesc
  10. TextViews.StdViewDesc
  11. TextViews.ViewDesc
  12. TextModels.StdModelDesc
  13. TextModels.ModelDesc
  14. TextModels.AttributesDesc
  15. Helvetica
  16. Helvetica
  17. Helvetica
  18. StdLinks.LinkDesc
  19. StdCmds.OpenBrowser('Text/Map', 'Map to the Text Subsystem')
  20. Helvetica
  21. StdCmds.OpenBrowser('Form/Map', 'Map to the Form Subsystem')
  22. Helvetica
  23. StdCmds.OpenBrowser('Obx/Map', 'Map to the Obx subsystem')
  24. StdCmds.OpenBrowser('Manuals/Commands', 'Command Tutorial')
  25. StdCmds.OpenBrowser('Manuals/Views', 'View Tutorial')
  26. StdCmds.OpenAux('Tour', 'Tour')
  27. StdCmds.OpenBrowser('Manuals/Guide', 'User Guide')
  28. Helvetica
  29. StdCmds.OpenBrowser('Manuals/Preface', 'Preface')
  30. StdCmds.OpenBrowser('Manuals/Intro', 'Introduction')
  31. StdCmds.OpenBrowser('Manuals/Overview', 'Overview')
  32. StdCmds.OpenBrowser('Manuals/Commands', 'Command Tutorial')
  33. StdCmds.OpenBrowser('Manuals/Views', 'View Tutorial')
  34. StdCmds.OpenBrowser('Obx/Map', 'Map to the Obx Subsystem')
  35. Quick Start
  36. Oberon/F contains a component framework, which is a new concept for most programmers. This document should give you a quick overview over which kinds of Oberon/F programs there are, when you need which, and where the documentation is.
  37. Generally, Oberon/F distinguishes two main categories of program: commands and views. Commands are comparable to traditional scripts or macros, except that they are implemented in a "real" programming language, rather than in a limited or inefficient special purpose language. This means that if a problem grows, its programmatic solution can grow along; you'll not suddenly need to switch to another language.
  38. Commands
  39. Commands operate on existing data types, e.g. on the built-in texts or forms. They can be regarded as custom extensions of the standard 
  40.  and 
  41.  subsystems. This is an important difference to more traditional libraries: new commands dynamically extend the existing functionality of Oberon/F.
  42. Often, programs are built around data entry masks; these are forms in Oberon/F. Very often, you'll also want to generate texts, e.g. for reporting purposes. You can use all capabilities of the Oberon/F text subsystem, including fonts, type sizes, color, embedded components such as stamp views or link views, etc. An example command which uses both the form and text subsystems is ObxOrders0.
  43. Before looking at this advanced example, you may want to have a look at simpler text and form sample programs. The 
  44.  subsystem ("Oberon by Example") provides a variety of such examples.
  45. Oberon/F programs are document-centric. This means that you typically work with documents and document components; and not directly with files or windows. Files are used only for simple databases or for manipulating legacy data. Sometimes it's possible to convert legacy data to an Oberon/F data type by writing a new converter. Obx also contains an example of such a converter.
  46. The tutorial contains a 
  47. section
  48. command
  49. programming
  50. Views
  51. If the built-in subsystems are not sufficient for your purposes, you need to develop a new kind of application. The unconventional aspect about such an application is that it is also just a document component, a so-called view. In contrast to old-style programs, a view only owns a part of a document, and not the whole screen or a whole window. If the view is the outermost (root) view, this cannot be distinguished from a traditional application. However, a view is always able to be embedded in texs, forms, etc. 
  52. Examples of views are text views, form views, link views (hypertext), stamp views (time stamps), clock views, Oberon microsystems logo views, bitmap (picture) views, commander views (buttons which execute an Oberon command or sequence of commands), fold views, error views generated by the compiler, various control views (buttons, check boxes, text fields, ...) and so on. Before implementing your own view, take a look at these views to get an idea of the variety of ways that views can be used. Sometimes it's not necessary to implement a whole new complex subsystem, but rather some additional view which extends the functionality of the existing text subsystem, for example.
  53. Views may or may not have a model. A model is the datastructure which is visually represented by the view. In simple cases, where the view needs no editable persistent state, no model is needed. Examples are logo views, commander views, control views, etc. True editors on the other hand should contain a separate model.
  54. Advanced views may contain other views. Such views are called containers. There are three useful categories of containers:
  55. - A Wrapper is a view which contains one or several other views, but no model. Typically, a wrapper has the same size as the wrapped view(s). Wrappers allow to add new functionality to existing views, e.g. a layer wrapper could arrange several views on top of each other.
  56. - A Special Container has a model, which contains the embedded views. The container knows about the types of the embedded views and their layout. Views cannot be inserted or deleted. For example, such a special container could have a query view at the top where database queries can be typed in, and a larger text view at the bottom where the results of the query appear.
  57. - A General Container has a model, which contains the embedded views. This is the most general and most complex kind of view, e.g. the built-in text and form subsystems. The form subsystem is available in source form. Examples for the other kinds of view are available as Obx examples.
  58. Views can be implemented in one or several modules, depending on their complexities.
  59. Views may have no programming interface, a simple procedural interface (typically based on properties, see Controls), or a full-fledged extensible interface. For the latter, it is recommended that the exported interface is separated from the hidden default implementation; for maximum extensibility.
  60. The tutorial contains a 
  61. section
  62. programming
  63. The "Wizard"
  64. Apart from the Obx samples and the tutorial examples, another documentation for the most important kinds of Oberon/F programs is available in Dev/Rsrc/New. These are template documents that you can use as basis for your own programs. The template documents' module names are renamed automatically by the Tools->Create
  65. Subsystem... command. This command also creates a suitable new subsystem directory structure (see DevSubTool).
  66. Roadmap
  67. How should you start to get acquainted with Oberon/F? We suggest that after reading the preliminaries, such as the 
  68. Guided
  69.  and the 
  70. User's
  71. Guide
  72. , you continue with the following texts:
  73. Preface
  74. Introduction
  75. Overview
  76. Afterwards, you may read the two tutorial texts:
  77. Tutorial
  78. Command
  79. Programming
  80. Tutorial
  81. Programming
  82. As an alternative, you may first want to go through the sample code, and read the tutorial texts afterwards:
  83. Oberon
  84. Example"
  85. TextControllers.StdCtrlDesc
  86. TextControllers.ControllerDesc
  87. Containers.ControllerDesc
  88. Controllers.ControllerDesc
  89. TextRulers.StdRulerDesc
  90. TextRulers.RulerDesc
  91. TextRulers.StdStyleDesc
  92. TextRulers.StyleDesc
  93. TextRulers.AttributesDesc
  94. Helvetica
  95. Documents.ControllerDesc
  96.